#! /usr/bin/env python
# _*_ coding: utf-8 _*_

import wx

class TwoButtonEvent(wx.PyCommandEvent):

    def __init__(self, evtType, id):
        wx.PyCommandEvent.__init__(self, evtType, id)
        self.clickCount=0

    def GetClickCount(self):
        return self.clickCount

    def SetClickCount(self, count):
        self.clickCount = count

myEVT_TWO_BUTTON = wx.NewEventType()
EVT_TWO_BUTTON = wx.PyEventBinder(myEVT_TWO_BUTTON)

class TwoButtonPanel(wx.Panel):

    def __init__(self, parent, id=-1, leftText="Left", rightText="Right"):
        wx.Panel.__init__(self, parent, id)
        self.leftButton = wx.Button(self, label=leftText)
        self.rightButton = wx.Button(self, label=rightText, pos=(100,0))
        self.leftClick = False
        self.rightClick = False
        self.clickCount = 0

        self.leftButton.Bind(wx.EVT_LEFT_DOWN, self.OnLeftClick)
        self.rightButton.Bind(wx.EVT_LEFT_DOWN, self.OnRightClick)

    def OnLeftClick(self, event):
        self.leftClick = True
        self.OnClick()
        event.Skip()

    def OnRightClick(self, event):
        self.rightClick = True
        self.OnClick()
        event.Skip()

    def OnClick(self):
        self.clickCount += 1
        if self.leftClick and self.rightClick:
            self.leftClick = False
            self.rightClick = False
            print 'myEVT_TWO_BUTTO - ', myEVT_TWO_BUTTON, 'TYPE: ', type(myEVT_TWO_BUTTON)
            evt = TwoButtonEvent(myEVT_TWO_BUTTON, self.GetId())
            #evt.SetClickCount(self.clickCount)
            self.GetEventHandler().ProcessEvent(evt)

class CustomEventFrame(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, "Click Count:0", size=(300,100))
        panel = TwoButtonPanel(self)
        print 'EVT_TWO_BUTTON - ', EVT_TWO_BUTTON, 'TYPE: ', type(EVT_TWO_BUTTON)
        self.Bind(EVT_TWO_BUTTON, self.OnTwoClick, panel)
        self.count = 0

    def OnTwoClick(self, event):
        self.count += 1
        #self.SetTitle("Click Count: %s" % event.GetClickCount())
        self.SetTitle("Click Count: %s" % self.count)


if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = CustomEventFrame(None, wx.NewId())
    frame.Show()
    app.MainLoop()
